

#pragma once

#include "DGKernel.h"
#include "VFVInterface.h"

class LinearWaveDGKernel : 
	public DGKernel,
	public VFVInterface
{
public:
  LinearWaveDGKernel(const InputParameters & parameters);

  virtual void computeReconstructionResidual(Moose::DGResidualType type);
  virtual void computeReconstructionJacobian(Moose::DGJacobianType type);
protected:
  virtual Real computeQpResidual(Moose::DGResidualType type) override;
  virtual Real computeQpJacobian(Moose::DGJacobianType type) override;

  RealVectorValue _velocity;
};

template <>
InputParameters validParams<LinearWaveDGKernel>();

